#pragma once
#include "field.h"
#include "pawn.h"
#include "tools.h"


#define EMPTY 0
#define BLACK 1
#define WHITE 2
#define BLACK_K 3
#define WHITE_K 4


class board
{
private:
	/**
	* @brief pole mowiace czy cos jest zaznaczone.
	*/
	bool isSmtChecked;
	/**
	* @brief pole mowiace czy plansza jest zablokowana.
	*/
	bool lock;
	/**
	* @brief pole opisujace pozycje aktualnego zaznaczenia.
	*/
	pos checkPos;
	
public:
	/**
	* @brief tablica symulujaca plansze.
	*/
	field fldBoard[8][8];
	board(void);
	~board(void);
	int getField(int x, int y);
	void setField(int value, int x, int y);
	void addPosMove(pos newPos, int x, int y);
	bool isChecked(int x, int y);
	void checkField(int x, int y, int side);
	vector<pos> retAllPos(int x, int y);
	void clearPos(int x, int y, bool all);
	pos retCheck(void);
	bool isLock(void);
	void unlock(void);
	void setLock(void);
	void killCasualties(int x, int y, int i);
	pos retBestMove(int x, int y);
	void setAllPos(int x, int y, vector<pos>newPos);
	void uncheckALL(void);
};

